﻿/**	@file		stdc_fun.h
 *	@date		(2007-12-27 01:01:32)/(2008-09-02 02:59:20)
 *-----------------------------------------------------------------------------
 *	\brief		mem* fun virtual proc..
 *	@version	1.0.5.9
 *	@author		Nick Shallery	(nicknide@gmail.com)
 *	@copyright	YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.
 *-----------------------------------------------------------------------------
**/

#if			!defined(__LOLIX__TOY__STDC_FUN__NICK__K_IN_G__)
#define		__LOLIX__TOY__STDC_FUN__NICK__K_IN_G__

#if			!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)
	#include	"../lolix_type.h"
#endif	//	!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)

namespace lolix{namespace toy{
	class	LOLIX_NO_VTABLE	stdc_fun
		: public itf
	{
		typedef	void* __lx_v_ptr;
	public:
		LOLIX_DECLARE_ITF(lolix::toy::stdc_fun, lolix::itf, (0xf65edbb3, 0x292e4da7, 0xaf94449e, 0x47641daf));
		LOLIX_DEFINE_FACTORY((0x5fd1338b, 0x75614756, 0x892a06f9, 0x2058c3c2), (stdc_fun** out_ptr));
		LOLIX_INTERFACE(memcpy	,	__lx_v_ptr	, (void*, const void*, size_type)const);
		LOLIX_INTERFACE(memmove	,	__lx_v_ptr	, (void*, const void*, size_type)const);
		LOLIX_INTERFACE(memcmp	,	lx_i32		, (const void* , const void*, size_type)const);
		LOLIX_INTERFACE(memset	,	__lx_v_ptr	, (void*, int, size_type)const);
		LOLIX_INTERFACE(wcslen	,	size_type	, (const wchar_t*)const);

		//LOLIX_INTERFACE(d2fs	,	LOLIX_RETNV	, (float* out_ptr, const double* in_ptr, size_type)const);
		//LOLIX_INTERFACE(f2ds	,	LOLIX_RETNV	, (double* out_ptr, const float* in_ptr, size_type)const);
		//LOLIX_INTERFACE(cosfv	,	LOLIX_RETNV	, (float* out_ptr, const float* in_ptr, size_type)const);
		//LOLIX_INTERFACE(cosdv	,	LOLIX_RETNV	, (double* out_ptr, const double* in_ptr, size_type)const);
		//LOLIX_INTERFACE(sinfv	,	LOLIX_RETNV	, (float* out_ptr, const float* in_ptr, size_type)const);
		//LOLIX_INTERFACE(sindv	,	LOLIX_RETNV	, (double* out_ptr, const double* in_ptr, size_type)const);
		//LOLIX_INTERFACE(sqrtfv	,	LOLIX_RETNV	, (float* out_ptr, const float* in_ptr, size_type)const);
		//LOLIX_INTERFACE(sqrtdv	,	LOLIX_RETNV	, (double* out_ptr, const double* in_ptr, size_type)const);
		//LOLIX_INTERFACE(normf	,	LOLIX_RETNV	, (float* out_ptr, const float* in_ptr, size_type)const);
		//LOLIX_INTERFACE(norm_diff_f,	LOLIX_RETNV,(float* out_ptr, const float* in_ptr_src, const float* in_ptr_des, size_type)const);
		//LOLIX_INTERFACE(normd		,	LOLIX_RETNV, (double* out_ptr, const double* in_ptr, size_type)const);
		//LOLIX_INTERFACE(norm_diff_d	,	LOLIX_RETNV, (double* out_ptr, const double* in_ptr_src, const double* in_ptr_des, size_type)const);
	};
}}


#endif	//	!defined(__LOLIX__TOY__STDC_FUN__NICK__K_IN_G__)
